From 76866c7be566f7b0ea7fd2fd46a9306628751f3f Mon Sep 17 00:00:00 2001 From: "kaf24@firebug.cl.cam.ac.uk" Date: Tue, 22 Nov 2005 11:53:45 +0100 Subject: [PATCH] SHADOW_CONTROL_OP_OFF should be checkign whether shadow mode is actually currently enabled. Signed-off-by: Keir Fraser --- xen/arch/x86/shadow32.c | 7 +++++-- xen/arch/x86/shadow_public.c | 7 +++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/xen/arch/x86/shadow32.c b/xen/arch/x86/shadow32.c index 17f4e17ae9..e340ddf628 100644 --- a/xen/arch/x86/shadow32.c +++ b/xen/arch/x86/shadow32.c @@ -1381,8 +1381,11 @@ int shadow_mode_control(struct domain *d, dom0_shadow_control_t *sc) switch ( op ) { case DOM0_SHADOW_CONTROL_OP_OFF: - __shadow_sync_all(d); - __shadow_mode_disable(d); + if ( shadow_mode_enabled(d) ) + { + __shadow_sync_all(d); + __shadow_mode_disable(d); + } break; case DOM0_SHADOW_CONTROL_OP_ENABLE_TEST: diff --git a/xen/arch/x86/shadow_public.c b/xen/arch/x86/shadow_public.c index b96e13e64e..06d5bddb4f 100644 --- a/xen/arch/x86/shadow_public.c +++ b/xen/arch/x86/shadow_public.c @@ -1290,8 +1290,11 @@ int shadow_mode_control(struct domain *d, dom0_shadow_control_t *sc) switch ( op ) { case DOM0_SHADOW_CONTROL_OP_OFF: - __shadow_sync_all(d); - __shadow_mode_disable(d); + if ( shadow_mode_enabled(d) ) + { + __shadow_sync_all(d); + __shadow_mode_disable(d); + } break; case DOM0_SHADOW_CONTROL_OP_ENABLE_TEST: -- 2.30.2